﻿using System;
using System.Data;
using System.Text.RegularExpressions;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using DataInfo;
using KenLib.BusinessManager;
using System.Drawing;
using XBLib.Dal.AdoDal; 

public partial class JOINT_frmJ_TraineeEnterBasicCheck : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ((JOINT_MstPage_JOINT)this.Master).ChangeMenu("入学実習生一覧", "frmJ_TraineeEnterSchoolSearch.aspx");
        ((JOINT_MstPage_JOINT)this.Master).changeTitle("入学情報（基礎）確認");

        if (Session["人コード"] == null)
        {
            Response.Redirect("../frmD_Login.aspx");
        }
        else if (Session["人コード"].ToString() == "")
        {
            Response.Redirect("../frmD_Login.aspx");
        }

        if (!IsPostBack) {
            Load基本情報();
            Load入退社情報();
            Load所属情報();
            Load資格情報();
            Load職種職務情報();
            Load健康診断情報();
            Load制服情報();
        }
    }

    /// <summary>
    /// load du lieu len form theo session 基本情報
    /// </summary>
    protected void Load基本情報() {
        if (Session["基本情報"] != null)
        {
            Dictionary<int, string> dictionary = new Dictionary<int, string>();
            dictionary.Add(0, "I");
            dictionary.Add(1, "J");
            dictionary.Add(2, "K");
            dictionary.Add(3, "L");
            dictionary.Add(4, "M");
            dictionary.Add(5, "N");
            dictionary.Add(6, "O");
            dictionary.Add(7, "Y");
            dictionary.Add(8, "P");
            dictionary.Add(9, "Q");
            dictionary.Add(10, "A");
            dictionary.Add(11, "T");
            dictionary.Add(12, "U");

            基本情報 obj_基本情報 = new 基本情報();
            obj_基本情報 = (基本情報)Session["基本情報"];
            lbl_人コード.Text = obj_基本情報.人コード == "" ? "－" : obj_基本情報.人コード;
            lbl_血液型コード.Text = (obj_基本情報.血液型コード == null || obj_基本情報.血液型コード == "") ? "－" : obj_基本情報.血液型コード;
            lbl_血液型名.Text = (obj_基本情報.血液型名 == null || obj_基本情報.血液型名 == "") ? "－" : obj_基本情報.血液型名;
			lbl_現資格.Text = obj_基本情報.現資格 == "" ? "－" : obj_基本情報.現資格;
            lbl_査証申請地.Text = obj_基本情報.査証申請地 == "" ? "－" : obj_基本情報.査証申請地;
            if (obj_基本情報.入国目的.ToString() != "")
            {
                int 入国目的 = Int32.Parse(obj_基本情報.入国目的.ToString());
                //lbl_入国目的.Text = dictionary[入国目的].ToString();
                lbl_入国目的.Text = obj_基本情報.名;
            }
            else {
                lbl_入国目的.Text = "－";
            }
            lbl_パスポート番号.Text = obj_基本情報.パスポート番号 == "" ? "－" : obj_基本情報.パスポート番号;
            if (obj_基本情報.発行日.ToString().Length > 0)
            {
                lbl_発行日.Text = DateTime.Parse(obj_基本情報.発行日.ToString()).ToString("yyyy") != "0001" ? DateTime.Parse(obj_基本情報.発行日.ToString()).ToString("yyyy年MM月dd日") : "－";
            }
            else {
                lbl_発行日.Text = "－";
            }
            if (obj_基本情報.有効期限.ToString().Length > 0)
            {
                lbl_有効期限.Text = DateTime.Parse(obj_基本情報.有効期限.ToString()).ToString("yyyy") != "0001" ? DateTime.Parse(obj_基本情報.有効期限.ToString()).ToString("yyyy年MM月dd日") : "－";
            }
            else {
                lbl_有効期限.Text = "－";
            }
            if (obj_基本情報.実習生在留資格タイプ.ToString() != "")
            {
                lbl_実習生在留資格タイプ.Text = obj_基本情報.実習生在留資格タイプ == true ? "企業単独" : "団体管理";
            }
            else {
                lbl_実習生在留資格タイプ.Text = "－";
            }
            lbl_実習生入国グループ.Text = obj_基本情報.実習生入国グループ == "" ? "－" : obj_基本情報.実習生入国グループ;
        }
    }

    /// <summary>
    /// load du lieu len form theo session 入退社情報
    /// </summary>
    protected void Load入退社情報()
    {
        if (Session["入退社情報"] != null)
        {
            入退社情報 obj_入退社情報 = new 入退社情報();
            obj_入退社情報 = (入退社情報)Session["入退社情報"];
            if (obj_入退社情報.入社年月日.ToString().Length > 0)
            {
                lbl_入社年月日.Text = DateTime.Parse(obj_入退社情報.入社年月日.ToString()).ToString("yyyy") != "0001" ? DateTime.Parse(obj_入退社情報.入社年月日.ToString()).ToString("yyyy年MM月dd日") : "－";
            }
            else {
                lbl_入社年月日.Text = "－";
            }
            lbl_入社特記事項.Text = obj_入退社情報.入社特記事項 == "" ? "－" : obj_入退社情報.入社特記事項;
        }
    }

    /// <summary>
    /// load du lieu len theo session 資格情報
    /// </summary>
    protected void Load資格情報()
    {
        if (Session["資格情報"] != null)
        {
            資格情報 obj_資格情報 = new 資格情報();
            obj_資格情報 = (資格情報)Session["資格情報"];
            lbl_役職名.Text = obj_資格情報.資格 == "" ? "－" : obj_資格情報.資格;
            if (obj_資格情報.発令開始日.ToString().Length > 0)
            {
                lbl_発令開始日.Text = DateTime.Parse(obj_資格情報.発令開始日.ToString()).ToString("yyyy") != "0001" ? DateTime.Parse(obj_資格情報.発令開始日.ToString()).ToString("yyyy年MM月dd日") : "－";
            }
            else {
                lbl_発令開始日.Text = "－";
            }
            if (obj_資格情報.発令終了日.ToString().Length > 0)
            {
                lbl_発令終了日.Text = DateTime.Parse(obj_資格情報.発令終了日.ToString()).ToString("yyyy") != "0001" ? DateTime.Parse(obj_資格情報.発令終了日.ToString()).ToString("yyyy年MM月dd日") : "－";
            }
            else {
                lbl_発令終了日.Text = "－";
            }
            if (obj_資格情報.実際開始日.ToString().Length > 0)
            {
                lbl_実際開始日.Text = DateTime.Parse(obj_資格情報.実際開始日.ToString()).ToString("yyyy") != "0001" ? DateTime.Parse(obj_資格情報.実際開始日.ToString()).ToString("yyyy年MM月dd日") : "－";
            }
            else {
                lbl_実際開始日.Text = "－";
            }
            if (obj_資格情報.実際終了日.ToString().Length > 0)
            {
                lbl_実際終了日.Text = DateTime.Parse(obj_資格情報.実際終了日.ToString()).ToString("yyyy") != "0001" ? DateTime.Parse(obj_資格情報.実際終了日.ToString()).ToString("yyyy年MM月dd日") : "－";
            }
            else {
                lbl_実際終了日.Text = "－";
            }
            lbl_変更理由.Text = obj_資格情報.変更理由 == "" ? "－" : obj_資格情報.変更理由.Replace("\n", "<br />");
        }
    }

    /// <summary>
    /// load du lieu len form theo session 所属情報
    /// </summary>
    protected void Load所属情報()
    {
        if (Session["所属情報"] != null)
        {
            所属情報 obj_所属情報 = new 所属情報();
            obj_所属情報 = (所属情報)Session["所属情報"];
            lbl_勤務地.Text = obj_所属情報.勤務地 == "" ? "－" : obj_所属情報.勤務地;
        }
    }

    /// <summary>
    /// load du lieu len form theo session 職種職務情報
    /// </summary>
    protected void Load職種職務情報()
    {
        if (Session["職種職務情報"] != null)
        {
            職種職務情報 obj_職種職務情報 = new 職種職務情報();
            obj_職種職務情報 = (職種職務情報)Session["職種職務情報"];
            lbl_職種コード.Text = obj_職種職務情報.職種 == "" ? "－" : obj_職種職務情報.職種;
            lbl_職務コード.Text = obj_職種職務情報.職務 == "" ? "－" : obj_職種職務情報.職務;
        }
    }

    /// <summary>
    /// load du lieu len form theo session 健康診断情報
    /// </summary>
    protected void Load健康診断情報()
    {
        if (Session["健康診断情報"] != null)
        {
            健康診断情報 obj_健康診断情報 = new 健康診断情報();
            obj_健康診断情報 = (健康診断情報)Session["健康診断情報"];
            if (obj_健康診断情報.健康診断日.ToString().Length > 0)
            {
                lbl_健康診断日.Text = DateTime.Parse(obj_健康診断情報.健康診断日.ToString()).ToString("yyyy") != "0001" ? DateTime.Parse(obj_健康診断情報.健康診断日.ToString()).ToString("yyyy年MM月dd日") : "－";
            }
            else {
                lbl_健康診断日.Text = "－";
            }
            lbl_健康状態.Text = obj_健康診断情報.健康状態 == "" ? "－" : obj_健康診断情報.健康状態;
            if (obj_健康診断情報.精密検査日.ToString().Length > 0)
            {
                lbl_精密検査日.Text = DateTime.Parse(obj_健康診断情報.精密検査日.ToString()).ToString("yyyy") != "0001" ? DateTime.Parse(obj_健康診断情報.精密検査日.ToString()).ToString("yyyy年MM月dd日") : "－";
            }
            else {
                lbl_精密検査日.Text = "－";
            }
            lbl_経過観察項目.Text = obj_健康診断情報.経過観察項目 == "" ? "－" : obj_健康診断情報.経過観察項目;
        }
    }

    /// <summary>
    /// load du lieu len form theo session 制服情報
    /// </summary>
    protected void Load制服情報()
    {
        if (Session["制服情報"] != null)
        {
            制服情報 obj_制服情報 = new 制服情報();
            obj_制服情報 = (制服情報)Session["制服情報"];
            lbl_胸囲.Text = obj_制服情報.胸囲.ToString() != "0" ? obj_制服情報.胸囲.ToString() : "－";
            lbl_胴回り.Text = obj_制服情報.胴回り.ToString() != "0" ? obj_制服情報.胴回り.ToString() : "－";
            lbl_足サイズ.Text = obj_制服情報.足サイズ == "" ? "－" : obj_制服情報.足サイズ; 
        }
    }
    protected void btn登録_Click(object sender, EventArgs e)
    {
        SetValueForControl();

        基本情報 obj_基本情報 = new 基本情報();
        obj_基本情報 = (基本情報)Session["基本情報"];
        基本情報Manager frm_基本情報 = new 基本情報Manager();
        frm_基本情報.UpdateInfo基本情報(obj_基本情報);
        Session.Remove("基本情報");

        入退社情報 obj_入退社情報 = new 入退社情報();
        obj_入退社情報 = (入退社情報)Session["入退社情報"];
        入退社情報Manager frm_入退社情報 = new 入退社情報Manager();
        frm_入退社情報.UpdateInfo入退社情報(obj_入退社情報);
        Session.Remove("入退社情報");

        資格情報 obj_資格情報 = new 資格情報();
        obj_資格情報 = (資格情報)Session["資格情報"];
        資格情報Manager frm_資格情報 = new 資格情報Manager();
        frm_資格情報.UpdateInfo資格情報(obj_資格情報);
        Session.Remove("資格情報");

        所属情報 obj_所属情報 = new 所属情報();
        obj_所属情報 = (所属情報)Session["所属情報"];
        所属情報Manager frm_所属情報 = new 所属情報Manager();
        frm_所属情報.UpdateInfo所属情報(obj_所属情報);
        Session.Remove("所属情報");

        職種職務情報 obj_職種職務情報 = new 職種職務情報();
        obj_職種職務情報 = (職種職務情報)Session["職種職務情報"];
        職種職務情報Manager frm_職種職務情報 = new 職種職務情報Manager();
        frm_職種職務情報.UpdateInfo職種職務情報(obj_職種職務情報);
        Session.Remove("職種職務情報");

        健康診断情報 obj_健康診断情報 = new 健康診断情報();
        obj_健康診断情報 = (健康診断情報)Session["健康診断情報"];
        健康診断情報Manager frm_健康診断情報 = new 健康診断情報Manager();
        frm_健康診断情報.UpdateInfo健康診断情報(obj_健康診断情報);
        Session.Remove("健康診断情報");

        制服情報 obj_制服情報 = new 制服情報();
        obj_制服情報 = (制服情報)Session["制服情報"];
        制服情報Manager frm_制服情報 = new 制服情報Manager();
        frm_制服情報.UpdateInfo制服情報(obj_制服情報);
        Session.Remove("制服情報");

        if (Session["リセット"] != null) Session.Remove("リセット");
        Response.Redirect("frmJ_TraineeLangAbilityInput.aspx");
    }
    protected void btn戻り_Click(object sender, EventArgs e)
    {
        Session["リセット"] = "on";
        Response.Redirect("frmJ_TraineeEnterBasicInput.aspx");
    }

    /// <summary>
    /// ham chuyen doi ki tu < >
    /// </summary>
    /// <param name="root"></param>
    /// <returns></returns>
    public static Control[] FlattenHierachy(Control root)
    {
        List<Control> list = new List<Control>();
        list.Add(root);
        if (root.HasControls())
        {
            foreach (Control control in root.Controls)
            {
                list.AddRange(FlattenHierachy(control));
            }
        }
        return list.ToArray();
    }
    protected void SetValueForControl()
    {
        Control[] allControls = FlattenHierachy(Page);
        foreach (Control control in allControls)
        {
            TextBox textBox = control as TextBox;
            if (textBox != null)
            {
                textBox.Text = textBox.Text.Replace("<", "&lt;");
                textBox.Text = textBox.Text.Replace(">", "&gt;");
            }
        }
    }
}
